home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr49 / 121_01.zip / DSW.C < prev    next >
Text File  |  1993-06-01  |  2KB  |  69 lines

  1. /*
  2. HEADER: CUG 121.??;
  3.  
  4.     TITLE:    Dsw - delete files selectively;
  5.     VERSION:    1.0;
  6.     DATE:    09/01/85;
  7.     DESCRIPTION: "This program lists a partial or entire directory, one entry
  8.         at a time, on the console and prompts for each file to be
  9.         deleted.  Optionally, the directory entries may be sorted
  10.         before prompting."
  11.     KEYWORDS:    delete, selective;
  12.     SYSTEM:    CP/M;
  13.     FILENAME:    DSW.C;
  14.     WARNINGS:    "Requires files.c for link.  Handles a maximum of 128 files
  15.         (easily changed).";
  16.     AUTHORS:    Cal Thixton;
  17.     COMPILERS:    BDS-C 1.50;
  18. */
  19.  
  20. #include <bdscio.h>
  21.  
  22. #define    MAXFILES 128    /* maximum # of files to store    */
  23.  
  24. main(argc,argv)
  25. char    *argv[];
  26. int    argc;
  27. {
  28.     char    *files[MAXFILES];
  29.     char    leftover,sflag;        /* to sort or not to sort    */
  30.     int    cmp();            /* declare here for qsort    */
  31.     int    i,j;
  32.  
  33.     _allocp = NULL;       /* initialize allocation pointer */
  34.     leftover = sflag = 0;
  35.     if (argv[1][0] == '-' && argv[1][1] == 'S')
  36.         sflag = 1;
  37.     if (argc > 1 + sflag)
  38.         for (j=sflag+1; j<argc && leftover<MAXFILES-1; j++)
  39.             {
  40.             files[leftover]=alloc(strlen(argv[j])+1);
  41.             strcpy(files[leftover++],argv[j]);
  42.             leftover=nameok(leftover,files,MAXFILES);
  43.             }
  44.     else    {
  45.         files[leftover]=alloc(15);
  46.         strcpy(files[leftover++],"????????.???");
  47.         leftover=nameok(leftover,files,MAXFILES);
  48.         }
  49.     if (sflag)
  50.         qsort(files,leftover,2,&cmp);
  51.     if (!leftover) {
  52.         printf("No files to delete.\n");
  53.         exit(0);
  54.         }
  55.     for (j=0; j<leftover; j++)
  56.         {
  57.         printf("delete %-12s (y/n) ? ",files[j]);
  58.         if (toupper(getchar()) == 'Y')
  59.             unlink(files[j]);
  60.         putchar('\n');
  61.         }
  62. }
  63.  
  64. cmp(a,b)
  65. char    **a,**b;
  66. {
  67.     return(strcmp(*a,*b));
  68. }
  69.